//给你一个长度为 n 的整数数组，每次操作将会使 n - 1 个元素增加 1 。返回让数组所有元素相等的最小操作次数。 
//
// 
//
// 示例 1： 
//
// 
//输入：nums = [1,2,3]
//输出：3
//解释：
//只需要3次操作（注意每次操作会增加两个元素的值）：
//[1,2,3]  =>  [2,3,3]  =>  [3,4,3]  =>  [4,4,4]
// 
//
// 示例 2： 
//
// 
//输入：nums = [1,1,1]
//输出：0
// 
//
// 
//
// 提示： 
//
// 
// n == nums.length 
// 1 <= nums.length <= 10⁵ 
// -10⁹ <= nums[i] <= 10⁹ 
// 答案保证符合 32-bit 整数 
// 
// Related Topics 数组 数学 👍 487 👎 0


package com.cjl.leetcode.editor.cn;
/**
 * [P453]_最小操作次数使数组元素相等
 * @author cjl
 * @date 2022-11-23 09:11:11
 */
public class P453_MinimumMovesToEqualArrayElements{
      public static void main(String[] args) {
            //测试代码
           Solution solution = new P453_MinimumMovesToEqualArrayElements().new Solution();
      }
      //力扣代码'
      //leetcode submit region begin(Prohibit modification and deletion)
class Solution {
          /**
           * n-1个元素整体加1，等价与一个元素-1；最终达到数组中最小值
           * @param nums
           * @return
           */
    public int minMoves(int[] nums) {
        int min = nums[0];
        for(int i = 1 ; i< nums.length; i++){
            if(nums[i] < min){
                min = nums[i];
            }
        }
        int res = 0;
        for(int i = 0 ;i < nums.length ; i ++ ){
            res += (nums[i] - min);
        }
        return  res;
    }
}
//leetcode submit region end(Prohibit modification and deletion)

  }